/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.tms.module.car.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 车辆实体类
 *
 * @author Blade
 * @since 2022-03-03
 */
@Data
@TableName("tm_car")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Car对象", description = "车辆")
public class TMCar extends TenantEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 主键
	 */
	@ApiModelProperty(value = "主键")
	private Long id;
	/**
	 * 车牌号
	 */
	@ExcelProperty("车牌号")
	@ApiModelProperty(value = "车牌号")
	private String carNo;
	/**
	 * 审核状态
	 */
	@ExcelProperty("审核状态")
	@ApiModelProperty(value = "审核状态")
	private String approvalStatus;
	/**
	 * 车辆类型
	 */
	@ExcelProperty("车辆类型")
	@ApiModelProperty(value = "车辆类型")
	private String carType;
	/**
	 * 运输物品类型(危货.普货)
	 */
	@ExcelProperty("运输物品类型(危货.普货)")
	@ApiModelProperty(value = "运输物品类型(危货.普货)")
	private String transportGoodsType;
	/**
	 * 挂车车牌号
	 */
	@ExcelProperty("挂车车牌号")
	@ApiModelProperty(value = "挂车车牌号")
	private String bindCarNo;
	/**
	 * 挂车行驶证号码
	 */
	@ExcelProperty("挂车行驶证号码")
	@ApiModelProperty(value = "挂车行驶证号码")
	private String certificationBindCarTransportNo;
	/**
	 * 挂车校验有效期-开始
	 */
	@ExcelProperty("挂车校验有效期-开始")
	@ApiModelProperty(value = "挂车校验有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationBindCarCheckValidStart;
	/**
	 * 挂车校验有效期-结束
	 */
	@ExcelProperty("挂车校验有效期-结束")
	@ApiModelProperty(value = "挂车校验有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationBindCarCheckValidEnd;
	/**
	 * 牵引车行驶证号
	 */
	@ExcelProperty("牵引车行驶证号")
	@ApiModelProperty(value = "牵引车行驶证号")
	private String certificationCarTransportNo;
	/**
	 * 牵引车校验有效期-结束
	 */
	@ExcelProperty("牵引车校验有效期-结束")
	@ApiModelProperty(value = "牵引车校验有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationCarCheckValidEnd;
	/**
	 * 牵引车校验有效期-开始
	 */
	@ExcelProperty("牵引车校验有效期-开始")
	@ApiModelProperty(value = "牵引车校验有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationCarCheckValidStart;
	/**
	 * 牵引车营运证号码
	 */
	@ExcelProperty("牵引车营运证号码")
	@ApiModelProperty(value = "牵引车营运证号码")
	private String certificationCarWorkNo;
	/**
	 * 牵引车营运证有效期开始
	 */
	@ExcelProperty("牵引车营运证有效期开始")
	@ApiModelProperty(value = "牵引车营运证有效期开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationCarWorkValidStart;
	/**
	 * 牵引车营运证有效期结束
	 */
	@ExcelProperty("牵引车营运证有效期结束")
	@ApiModelProperty(value = "牵引车营运证有效期结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationCarWorkValidEnd;
	/**
	 * 挂车营运证号
	 */
	@ExcelProperty("挂车营运证号")
	@ApiModelProperty(value = "挂车营运证号")
	private String certificationBindCarWorkNo;
	/**
	 * 挂车营运证有效期开始
	 */
	@ExcelProperty("挂车营运证有效期开始")
	@ApiModelProperty(value = "挂车营运证有效期开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationBindCarWorkValidStart;
	/**
	 * 挂车营运证有效期结束
	 */
	@ExcelProperty("挂车营运证有效期结束")
	@ApiModelProperty(value = "挂车营运证有效期结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificationBindCarWorkValidEnd;
	/**
	 * 车架号/车辆识别号
	 */
	@ExcelProperty("车架号/车辆识别号")
	@ApiModelProperty(value = "车架号/车辆识别号")
	private String carFlag;
	/**
	 * 交强险
	 */
	@ExcelProperty("交强险")
	@ApiModelProperty(value = "交强险")
	private String vehicleInsurance;
	/**
	 * 罐体报告编号
	 */
	@ExcelProperty("罐体报告编号")
	@ApiModelProperty(value = "罐体报告编号")
	private String containerNo;
	/**
	 * 罐体报告有效期-开始
	 */
	@ExcelProperty("罐体报告有效期-开始")
	@ApiModelProperty(value = "罐体报告有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime containerReportValidStart;
	/**
	 * 罐体报告有效期-结束
	 */
	@ExcelProperty("罐体报告有效期-结束")
	@ApiModelProperty(value = "罐体报告有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime containerReportValidEnd;
	/**
	 * 是否启用GPS
	 */
	@ExcelProperty("是否启用GPS")
	@ApiModelProperty(value = "是否启用GPS")
	private Integer enableGps;
	/**
	 * 牵引车行驶证照片
	 */
	@ExcelProperty("牵引车行驶证照片")
	@ApiModelProperty(value = "牵引车行驶证照片")
	private String carTransportPic;
	/**
	 * 挂车行驶证照片
	 */
	@ExcelProperty("挂车行驶证照片")
	@ApiModelProperty(value = "挂车行驶证照片")
	private String bindCarTransportPic;
	/**
	 * 牵引车营运证照片
	 */
	@ExcelProperty("牵引车营运证照片")
	@ApiModelProperty(value = "牵引车营运证照片")
	private String carWorkPic;
	/**
	 * 挂车营运证照片
	 */
	@ExcelProperty("挂车营运证照片")
	@ApiModelProperty(value = "挂车营运证照片")
	private String bindCarWorkPic;
	/**
	 * 罐体报告照片
	 */
	@ExcelProperty("罐体报告照片")
	@ApiModelProperty(value = "罐体报告照片")
	private String containerReportPic;
	/**
	 * 车辆颜色
	 */
	@ExcelProperty("车辆颜色")
	@ApiModelProperty(value = "车辆颜色")
	private String carColor;
	/**
	 * 最大载重
	 */
	@ExcelProperty("最大载重")
	@ApiModelProperty(value = "最大载重")
	private BigDecimal maxLoad;
	/**
	 * 货箱容积
	 */
	@ExcelProperty("货箱容积")
	@ApiModelProperty(value = "货箱容积")
	private BigDecimal maxCapacity;
	/**
	 * 高
	 */
	@ExcelProperty("高")
	@ApiModelProperty(value = "高")
	private BigDecimal attrH;
	/**
	 * 长
	 */
	@ExcelProperty("长")
	@ApiModelProperty(value = "长")
	private BigDecimal attrD;
	/**
	 * 宽
	 */
	@ExcelProperty("宽")
	@ApiModelProperty(value = "宽")
	private BigDecimal attrW;
	/**
	 * 紧急切断阀是否安装
	 */
	@ExcelProperty("紧急切断阀是否安装")
	@ApiModelProperty(value = "紧急切断阀是否安装")
	private Integer esv;
	/**
	 * 是否安装灭火器
	 */
	@ExcelProperty("是否安装灭火器")
	@ApiModelProperty(value = "是否安装灭火器")
	private Integer fireOff;
	/**
	 * 交强险有效期-开始
	 */
	@ExcelProperty("交强险有效期-开始")
	@ApiModelProperty(value = "交强险有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime vehicleInsuranceValidStart;

	/**
	 * 交强险有效期-结束
	 */
	@ExcelProperty("交强险有效期-开始")
	@ApiModelProperty(value = "交强险有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime vehicleInsuranceValidEnd;

	/**
	 * 气罐车使用证
	 */
	@ExcelProperty("气罐车使用证")
	@ApiModelProperty(value = "气罐车使用证")
	private String certificateTankTruck;

	/**
	 * 压力容器有效期-开始
	 */
	@ExcelProperty("压力容器有效期-开始")
	@ApiModelProperty(value = "压力容器有效期-开始")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificateTankTruckStart;


	/**
	 * 压力容器有效期-结束
	 */
	@ExcelProperty("压力容器有效期-结束")
	@ApiModelProperty(value = "压力容器有效期-结束")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime certificateTankTruckEnd;

	/**
	 * GPS设备号
	 */
	@ExcelProperty("GPS设备号")
	@ApiModelProperty(value = "GPS设备号")
	private String gpsEquipmentNumber;
	/**
	 * Vin号
	 */
	@ExcelProperty("Vin号")
	@ApiModelProperty(value = "Vin号")
	private String vinNumber;
	/**
	 * 发动机号
	 */
	@ExcelProperty("发动机号")
	@ApiModelProperty(value = "发动机号")
	private String engineNumber;
	/**
	 * 车辆排放阶段
	 */
	@ExcelProperty("车辆排放阶段")
	@ApiModelProperty(value = "车辆排放阶段")
	private String emissionStage;
	/**
	 * 环保清单照片
	 */
	@ExcelProperty("环保清单照片")
	@ApiModelProperty(value = "环保清单照片")
	private String protectionList;

	@ApiModelProperty("是否已删除")
	private Integer isDeleted;
}
